home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 4
/
Aminet 4 - November 1994.iso
/
aminet
/
dev
/
obero
/
oberon_lib.lha
/
oberon-a
/
source1.lha
/
source
/
Amiga
/
Serial.mod
< prev
next >
Wrap
Text File
|
1994-08-08
|
5KB
|
146 lines
(**************************************************************************
$RCSfile: Serial.mod $
Description: external declarations for the serial device
Created by: fjc (Frank Copeland)
$Revision: 3.2 $
$Author: fjc $
$Date: 1994/08/08 00:51:36 $
$VER: serial.h 33.6 (6.11.90)
Includes Release 40.15
(C) Copyright 1985-1993 Commodore-Amiga, Inc.
All Rights Reserved
Oberon-A interface Copyright © 1994, Frank Copeland.
This file is part of the Oberon-A Interface.
See Oberon-A.doc for conditions of use and distribution.
***************************************************************************)
MODULE Serial;
(*
** $C- CaseChk $I- IndexChk $L+ LongAdr $N- NilChk
** $P- PortableCode $R- RangeChk $S- StackChk $T- TypeChk
** $V- OvflChk $Z- ZeroVars
*)
IMPORT E := Exec;
(* array of termination char's *)
(* to use,see serial.doc setparams *)
TYPE
IOTArrayPtr * = CPOINTER TO IOTArray;
IOTArray * = RECORD
TermArray0 * : E.ULONG;
TermArray1 * : E.ULONG;
END; (* IOTArray *)
CONST
defaultCtlChar * = 11130000H; (* default chars for xON,xOFF *)
(* You may change these via SETPARAMS. At this time, parity is not
calculated for xON/xOFF characters. You must supply them with the
desired parity. *)
(******************************************************************)
(* CAUTION !! IF YOU ACCESS the serial.device, you MUST (!!!!) use an
IOExtSer-sized $tructure or you may overlay innocent memory !! *)
(******************************************************************)
TYPE
IOExtSerPtr * = CPOINTER TO IOExtSer;
IOExtSer * = RECORD (E.IOStdReq)
ctlChar * : E.ULONG; (* control char's (order = xON,xOFF,INQ,ACK) *)
rBufLen * : E.ULONG; (* length in bytes of serial port's read buffer *)
extFlags * : SET; (* additional serial flags (see bitdefs below) *)
baud * : E.ULONG; (* baud rate requested (true baud) *)
brkTime * : E.ULONG; (* duration of break signal in MICROseconds *)
termArray * : IOTArray; (* termination character array *)
readLen * : E.UBYTE; (* bits per read character (# of bits) *)
writeLen * : E.UBYTE; (* bits per write character (# of bits) *)
stopBits * : E.UBYTE; (* stopbits for read (# of bits) *)
serFlags * : E.BSET; (* see SerFlags bit definitions below *)
status * : E.WSET;
END; (* IOExtSer *)
(* status of serial port, as follows:
* BIT ACTIVE FUNCTION
* 0 --- reserved
* 1 --- reserved
* 2 high Connected to parallel "select" on the A1000.
* Connected to both the parallel "select" and
* serial "ring indicator" pins on the A500
* & A2000. Take care when making cables.
* 3 low Data Set Ready
* 4 low Clear To Send
* 5 low Carrier Detect
* 6 low Ready To Send
* 7 low Data Terminal Ready
* 8 high read overrun
* 9 high break sent
* 10 high break received
* 11 high transmit x-OFFed
* 12 high receive x-OFFed
* 13-15 reserved
*)
CONST
query * = E.cmdNonstd; (* $09 *)
break * = E.cmdNonstd+1; (* $0A *)
setParams * = E.cmdNonstd+2; (* $0B *)
xDisabled * = 7; (* ioSerFlags xOn-xOff feature disabled bit *)
eofMode * = 6; (* " EOF mode enabled bit *)
shared * = 5; (* " non-exclusive access bit *)
radBoogie * = 4; (* " high-speed mode active bit *)
queuedBrk * = 3; (* " queue this Break ioRqst *)
sevenWire * = 2; (* " RS232 7-wire protocol *)
partyOdd * = 1; (* " parity feature enabled bit *)
partyOn * = 0; (* " parity-enabled bit *)
(* These now refect the actual bit positions in the ioStatus UWORD *)
xOffRead * = 12; (* ioStatus receive currently xOFF'ed bit *)
xOffWrite * = 11; (* " transmit currently xOFF'ed bit *)
readBreak * = 10; (* " break was latest input bit *)
wroteBreak * = 9; (* " break was latest output bit *)
overRun * = 8; (* " status word RBF overrun bit *)
extMSpOn * = 1; (* ioExtFlags. Use mark-space parity, *)
(* instead of odd-even. *)
extMark * = 0; (* " if mark-space, use mark *)
serErrDevBusy * = 1;
serErrBaudMismatch * = 2; (* baud rate not supported by hardware *)
serErrBufErr * = 4; (* Failed to allocate new read buffer *)
serErrInvParam * = 5;
serErrLineErr * = 6;
serErrParityErr * = 9;
serErrTimerErr * = 11; (*(See the serial/OpenDevice autodoc)*)
serErrBufOverflow * = 12;
serErrNoDSR * = 13;
serErrDetectedBreak * = 15;
serErrInvBaud * = 3; (* unused *)
serErrNotOpen * = 7; (* unused *)
serErrPortReset * = 8; (* unused *)
serErrInitErr * = 10; (* unused *)
serErrNoCTS * = 14; (* unused *)
name * = "serial.device";
END Serial.